package com.druid.request.openai.chat;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

/**
 * 用于Create chat completion
 */
@Data
public class OpenAIChatRequest extends OpenAIRequestBaseAbstract {

    /**
     * 基于chat模式的参数
     */
    @JsonProperty("messages")
    private Messages[] messages;

    @Data
    public static class Messages{
        private String role;
        private String content;
    }

    /**
     * 根据请求参数构建一个 OpenAI 请求对象
     *
     * @param modelId     GPT 模型 ID
     * @param messages    生成的文本提示的相关信息
     * @param maxTokens   最大生成 tokens 数量
     * @param temperature 控制生成文本的创造性程度
     * @param stop        停止生成文本的标记
     * @param userId      请求的用户 ID，用于跟踪请求和确保在同一个会话中保持一致性
     */
    public OpenAIChatRequest(String modelId, Messages[] messages, int maxTokens, double temperature, String stop, String userId) {
        this.modelId = modelId;
        this.messages = messages;
        this.maxTokens = maxTokens;
        this.temperature = temperature;
        this.stop = stop;
        this.userId = userId;
    }

}
